Computing environments, such as data centers, frequently employ cloud computing platforms, where “cloud” refers to a collective computing infrastructure that implements a cloud computing paradigm. For example, as per the National Institute of Standards and Technology (NIST Special Publication No. 800-145), cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. Cloud-based data centers are deployed and managed by cloud service providers, who provide a computing environment for customers (tenants) to run their application programs (e.g. business applications or otherwise). Such cloud computing platforms may be implemented at least in part utilizing one or more virtual compute elements such as one or more virtual machines (VMs) or one or more containers. By way of example, one commonly used type of container is a Docker container.
Containers benefit application packaging and delivery and also have smaller runtime footprints compared to VMs. Thus, an increasing amount of applications adopt containers as their hosting environment. A running container is launched from a container image. In existing systems, the devices hosting the applications (host devices) obtain container images by pulling them from a central image registry.